/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mail;


import com.dao.DAOBase;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

/**
 *
 * @author Denise
 */
public class Mail extends DAOBase {
//
//    public void enviarIncidencia(BOIncidencias bIncidencias, String Empleado) {
////        try
////        {
//        // Propiedades de la conexión
//
//        Properties props = new Properties();
//
//        //GMAIL
//        props.put("mail.smtp.host", "smtp.live.com"); //      Host Name
//        props.put("mail.smtp.socketFactory.port", "587");//       SSL Port      
//        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
//        props.put("mail.smtp.auth", "true");
//        props.put("mail.smtp.port", "587");
//        props.put("mail.smtp.starttls.enable", "true");
//
//        Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
//            protected PasswordAuthentication getPasswordAuthentication() {
//                return new PasswordAuthentication("no-responder@massivedynamics.pe", "dynamics2013");
//            }
//        });
//
//
//
//        try {
//
//            Message message = new MimeMessage(session);
//            message.setFrom(new InternetAddress("no-responder@massivedynamics.pe"));
//            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("csalvador@massivedynamics.pe, cvargas@massivedynamics.pe"));
//            message.setSubject("Incidencias: Hostal DEMO!");
//            message.setText(
//                    "Estimado Señor: \n"
//                    + "-----------------------------------------------------\n"
//                    + "Le informamos que ha ocurrido una Incidencia en el Hostal DEMO\n "
//                    + "Durante la Sesion:" + Empleado + "  \n "
//                    + "Comentario: " + bIncidencias.getComentario() + " \n  "
//                    + "Fecha: " + bIncidencias.getHora() + " \n \n \n "
//                    + "Gracias por usar nuestro servicio. \n"
//                    + "Massive Dynamics Peru");
//
//            Transport.send(message);
//
//            System.out.println("Done");
//
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    public void EnviarReporte(String Empleado, ArrayList<String> listaAdjuntos) {
////        try
////        {
//        // Propiedades de la conexión
//        System.out.println("\n\n\n");
//        System.out.println("datos dentro de enviar reporte");
//        System.out.println("\n\n\n");
//        System.out.println(Empleado);
//        System.out.println(listaAdjuntos.size());
//
//        System.out.println("\n\n\n");
//
//        Properties props = new Properties();
//
//        //GMAIL
//        props.put("mail.smtp.host", "smtp.live.com"); //      Host Name
//        props.put("mail.smtp.socketFactory.port", "587");//       SSL Port      
//        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
//        props.put("mail.smtp.auth", "true");
//        props.put("mail.smtp.port", "587");
//        props.put("mail.smtp.starttls.enable", "true");
//
//        //props.put("mail.smtp.socketFactory.port", "587");
//        //props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
//
//
//        //props.setProperty("mail.transport.protocol", "smtp");
//        //props.setProperty("mail.host", "smtp.live.com");
//
//
//        Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
//            protected PasswordAuthentication getPasswordAuthentication() {
//                return new PasswordAuthentication("no-responder@massivedynamics.pe", "dynamics2013");
//            }
//        });
//
//
//
//        try {
//
//
//
//
//            Message message = new MimeMessage(session);
//            message.setFrom(new InternetAddress("info@massivedynamics.pe"));
//            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("csalvador@massivedynamics.pe, cvargas@massivedynamics.pe"));
//            //message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("chris.da.salvador@gmail.com"));
//            message.setSubject("Reportes: Empleado " + Empleado);
//            message.setText(
//                    "Estimado Señor: \n"
//                    + "-----------------------------------------------------\n"
//                    + "Los reportes del empleado " + Empleado + " \n "
//                    + "Hostal DEMO\n "
//                    + "\n\n\n\n "
//                    + "Gracias por usar nuestro servicio. \n"
//                    + "Massive Dynamics Peru");
//
//            BodyPart tmp = new MimeBodyPart();
//            tmp.setText("Estimado Señor: \n"
//                    + "-----------------------------------------------------\n"
//                    + "Los reportes del empleado " + Empleado + " \n "
//                    + "Hostal DEMO\n "
//                    + "\n\n\n\n "
//                    + "Gracias por usar nuestro servicio. \n"
//                    + "Massive Dynamics Peru");
//
//
//            Multipart multipart = new MimeMultipart("mixed");
//            multipart.addBodyPart(tmp);
//            int ii = 1;
//            for (String str : listaAdjuntos) {
//                System.out.println(ii + "==" + str);
//
//                AgregarVerificacion(str);
//
//                MimeBodyPart messageBodyPart = new MimeBodyPart();
//                DataSource source = new FileDataSource(str);
//                messageBodyPart.setDataHandler(new DataHandler(source));
//                messageBodyPart.setFileName(source.getName());
//                multipart.addBodyPart(messageBodyPart);
//                ii++;
//                ActualizarVerificacion(1, 1, str);
//            }
//
//            message.setContent(multipart);
//
//            Transport.send(message);
//
//            System.out.println("Done");
//
//
//
//        } catch (Exception e) {
//            for (String str : listaAdjuntos) {
//
//                ActualizarVerificacion(0, 1, str);
//            }
//
//            e.printStackTrace();
//        } finally {
//        }
//    }
//
//    public ArrayList<BOVerificacion> Verificacion() {
//
//        ArrayList<BOVerificacion> L = new ArrayList<BOVerificacion>();
//
//
//
//        BOVerificacion bverificacion = null;
//
//
//        this.init_mysql();
//        PreparedStatement pstmt = null;
//        ResultSet rs = null;
//        try {
//            String query = "SELECT mail, print, ruta"
//                    + " FROM verificacionmailprint;";
//
//            pstmt = conn.prepareStatement(query);
//            rs = pstmt.executeQuery();
//            while (rs.next()) {
//
//                bverificacion = new BOVerificacion();
//
//                bverificacion.setMail(rs.getInt(1));
//                bverificacion.setPrint(rs.getInt(2));
//                bverificacion.setRuta(rs.getString(3));
//
//                L.add(bverificacion);
//            }
//
//            rs.close();
//            pstmt.close();
//            conn.close();
//
//        } catch (SQLException ex) {
//            System.err.println("Error al ejecutar el query Verificacion");
//            ex.printStackTrace();
//        } finally {
//            if (rs != null) {
//                try {
//                    rs.close();
//                } catch (SQLException ex) {
//                    ;
//                }
//                rs = null;
//            }
//            if (pstmt != null) {
//                try {
//                    pstmt.close();
//                } catch (SQLException ex) {
//                    ;
//                }
//                pstmt = null;
//            }
//            if (conn != null) {
//                try {
//                    conn.close();
//                } catch (SQLException ex) {
//                    ;
//                }
//                conn = null;
//            }
//        }
//        return L;
//    }
//
//    public void ActualizarVerificacion(int mail, int print, String ruta) {
//
//        this.init_mysql();
//        PreparedStatement pstmt = null;
//        try {
//
//            String query = "UPDATE verificacionmailprint SET mail=?, print=? WHERE ruta=?;";
//
//
//            pstmt = conn.prepareStatement(query);
//            pstmt.setInt(1, mail);
//            pstmt.setInt(2, print);
//            pstmt.setString(3, ruta);
//
//
//            pstmt.executeUpdate();
//
//            pstmt.close();
//
//            conn.close();
//        } catch (SQLException ex) {
//            System.err.println("Error al ejecutar el query Actualizar Verificacion");
//            ex.printStackTrace();
//        } finally {
//            if (pstmt != null) {
//                try {
//                    pstmt.close();
//                } catch (SQLException ex) {
//                    ;
//                }
//                pstmt = null;
//            }
//            if (conn != null) {
//                try {
//                    conn.close();
//                } catch (SQLException ex) {
//                    ;
//                }
//                conn = null;
//            }
//        }
//
//    }
//
//    public void AgregarVerificacion(String ruta) {
//
//        this.init_mysql();
//        PreparedStatement pstmt = null;
//        try {
//
//            String query = "INSERT INTO verificacionmailprint (ruta) VALUES (?)";
//
//            pstmt = conn.prepareStatement(query);
//            pstmt.setString(1, ruta);
//
//
//
//
//
//            pstmt.executeUpdate();
//            pstmt.close();
//            conn.close();
//        } catch (SQLException ex) {
//            System.err.println("Error al ejecutar el query AgregarVerificacion");
//            ex.printStackTrace();
//        } finally {
//            if (pstmt != null) {
//                try {
//                    pstmt.close();
//                } catch (SQLException ex) {
//                    ;
//                }
//                pstmt = null;
//            }
//            if (conn != null) {
//                try {
//                    conn.close();
//                } catch (SQLException ex) {
//                    ;
//                }
//                conn = null;
//            }
//        }
//
//    }
//
//    public void printToPrinter(String ruta) {
//        Process p;
//        String execBatchPath = ruta;
//
//        try {
//            p = Runtime.getRuntime().exec("/home/ubuntu/demo/reportes/script/prueba.sh " + execBatchPath);
//            p.waitFor();
//        } catch (IOException e) {
//            System.out.println(e);
//        } catch (InterruptedException e) {
//            System.out.println(e);
//        }
//    }
//
//    public void enviarCierrePeriodo(double bruto, double gastos, double neto) {
////        try
////        {
//        // Propiedades de la conexión
//
//        Properties props = new Properties();
//
//        //GMAIL
//        props.put("mail.smtp.host", "smtp.live.com"); //      Host Name
//        props.put("mail.smtp.socketFactory.port", "587");//       SSL Port      
//        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
//        props.put("mail.smtp.auth", "true");
//        props.put("mail.smtp.port", "587");
//        props.put("mail.smtp.starttls.enable", "true");
//
//        Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
//            protected PasswordAuthentication getPasswordAuthentication() {
//                return new PasswordAuthentication("no-responder@massivedynamics.pe", "dynamics2013");
//            }
//        });
//
//
//
//        try {
//
//            Message message = new MimeMessage(session);
//            message.setFrom(new InternetAddress("no-responder@massivedynamics.pe"));
//            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("csalvador@massivedynamics.pe, cvargas@massivedynamics.pe"));
//            message.setSubject("Cierre Periodo: Hostal DEMO!");
//            message.setText(
//                    "Estimado Señor: \n"
//                    + "-----------------------------------------------------\n"
//                    + "Las ganancias del presente periodo son\n "
//                    + "Bruto:" + bruto + "  \n "
//                    + "Gastos: " + gastos + " \n  "
//                    + "Neto: " + neto + " \n \n \n "
//                    + "Gracias por usar nuestro servicio. \n"
//                    + "Massive Dynamics Peru");
//
//            Transport.send(message);
//
//            System.out.println("Done");
//
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
}
